
//
//#include<iostream>
//using namespace std;
//int main()
//{
//	string a = "A";
//	string b = "b";
//	if(a < b)
//	cout << "a< b";
//	else
//	{
//		cout << "a> b";
//
//	}
//	return 0;
//}

#include<iostream>
using namespace std;

const int N = 1e6 + 10;
int a[N], b[N], c[N];
int  la, lb, lc;

bool cmp(string& x, string& y)
{
	if (x.size() != y.size())
	{
		return x.size() < y.size();
	}
	else
	{
		return x < y;
	}
}

void sub(int c[], int a[], int b[])
{
	lc = max(la, lb);
	for (int i = 0; i < lc; i++)
	{
		c[i] += a[i] - b[i];
		if (c[i] < 0)
		{
			c[i + 1] -= 1;
			c[i] += 10;
		}
	}

	while (lc > 1 && c[lc - 1] == 0)
	{
		lc--;
	}
}
int main()
{
	string x, y; cin >> x >> y;
	la = x.size();
	lb = y.size();
	lc = max(la, lb);
	if (cmp(x, y))
	{
		swap(x, y);
		cout << "-";
	}
	for (int i = 0; i < la; i++)
		a[i] = x[la - i - 1] - '0';
	for (int i = 0; i < lb; i++)
		a[i] = y[lb - i - 1] - '0';

	sub(c, a, b);

	for (int i = lc; i >= 0; i--)
	{
		cout << c[i];
	}

	return 0;
}